Skip to content

[Rush] Add rush-serve plugin dashboard UI and config updates - #5893

Open
mojaza wants to merge 6 commits into
microsoft:mainfrom
mojaza:rush-server-plugin-dashboard
Open

[Rush] Add rush-serve plugin dashboard UI and config updates#5893
mojaza wants to merge 6 commits into
microsoft:mainfrom
mojaza:rush-server-plugin-dashboard

Conversation

@mojaza

@mojaza mojaza commented Jul 22, 2026

Copy link
Copy Markdown

Summary

This PR adds a built-in dashboard for the Rush serve plugin so developers can monitor and control watch-mode execution from a browser without creating a separate client.

The change introduces dashboard frontend assets, serves them through the plugin, and documents how to configure and open the dashboard route.

Details

Added a dashboard UI with:

  • WebSocket connection and reconnect handling
  • Overall status and iteration state visibility
  • Table and graph views
  • Filtering, search, and selection workflows
  • Run controls: run once, pause/resume, abort
  • Terminal/log output panel

Other changes:

  • Added global routing config to serve dashboard assets from a workspace-level path.
  • Added build copy steps so dashboard static assets are emitted with package outputs.
  • Added lint configuration for browser globals used by dashboard code.
  • Updated plugin documentation with setup and usage instructions.

Design notes

Considered keeping the dashboard as an external sample app.

Chose an in-package dashboard to make onboarding easier and reduce setup friction.

Compatibility and performance

Backward compatibility is preserved; changes are additive.

Existing plugin configuration continues to work.

Runtime impact is expected to be minimal and mostly limited to static asset serving during watch-mode usage.

How it was tested

View Expected This PR
Table view image image
Graph view image image

How to run the server

  • Run rush build -t rush in your terminal
  • Then, run node ./apps/rush/lib-esm/start-dev.js start --port <port_number>
  • Find the dashboard in https://127.0.0.1:<port_number>/dashboard/dashboard.html

Impacted documentation

  • Plugin README was updated with dashboard configuration and usage guidance.
  • No website documentation updates identified.

Comment thread rush-plugins/rush-serve-plugin/src/dashboard/dashboard.ts Outdated
Comment thread rush-plugins/rush-serve-plugin/src/dashboard/dashboard.ts Outdated
Comment thread rush-plugins/rush-serve-plugin/src/dashboard/modules/dashboardMutations.ts Outdated
Comment thread apps/rush-serve-dashboard/src/modules/dashboardMutations.ts
Comment thread rush-plugins/rush-serve-plugin/src/dashboard/modules/dashboardWebSocket.ts Outdated
Comment thread rush-plugins/rush-serve-plugin/tsconfig.json Outdated
mojaza added 3 commits July 29, 2026 22:18
Keep prefer-const, no-explicit-any, no-new-null, and no-control-regex enabled. Resolve their findings without eslint-disable suppressions.
Resolve typedef and no-explicit-any lint findings without ESLint suppressions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Needs triage

Development

Successfully merging this pull request may close these issues.

3 participants